package com.yegs.jltqc.config;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

import java.util.Arrays;

/**
 * Controller访问日志
 */
//@Aspect
//@Component
public class VisitLog {




    /**
     * 切入点
     * 匹配* com.yegs.jltqc.controller.*.*(..))包及其子包下的所有类的所有方法
     */
    @Pointcut(value = "execution(* com.yegs.jltqc.controller.*.*(..))")
    public void pointCut(){

    }
    /**
     * 前置通知，目标方法调用前被调用
     */
    @Before("pointCut()")
    public void beforeAdvice(JoinPoint joinPoint){
        System.out.println("----------- 前置通知 -----------");
        Signature signature = joinPoint.getSignature();
        System.out.println("返回目标方法的签名：" + signature);
        System.out.println("代理的是哪一个方法：" + signature.getName());
        Object[] args = joinPoint.getArgs();
        System.out.println("获取目标方法的参数信息：" + Arrays.asList(args));

    }


}
